import time
import os

from tornado import web, ioloop


class MainHandler(web.RequestHandler):

    # 当客户端发起不同的http方法的时候，只需要重载handler中对应的方法即可
    async def get(self, *args, **kwargs):
        self.write("hello world 3!")


class SleepHandler(web.RequestHandler):

    async def get(self, *args, **kwargs):
        # 在编写中不能在里面写同步IO逻辑
        time.sleep(10)
        self.write("sleep")


if __name__ == '__main__':
    setting = {
        # 设置静态文件路径，默认前缀是 static  => http://xxx.com/static/1.png
        "static_path": os.path.join(os.path.dirname(__file__), 'static'),
        'static_url_prefix': "/static/"  # 设置静态文件路径前缀

    }

    app = web.Application([
        ("/", MainHandler),
        ("/2/", web.RedirectHandler, {'url': "/"}),  # 自动跳转到/路径，适合当该连接废弃的时候，但是业务原因该连接不能废除
        ("/static3/(.*)", web.StaticFileHandler, {"path": os.path.join(os.path.dirname(__file__), 'static')})  # 这样也可以达到静态文件访问的目的
    ], debug=True, **setting)

    app.listen(8000)

    ioloop.IOLoop.current().start()
